Создаём виртуальный образ ОС для среды разработки
В качестве основы, будем использовать CentOS 6.5
- Устанавливаем последние Virtualbox и Vagrant
- Создаём новую виртуалку в virtualbox на основе федоры, поставив 2ГБ RAM и 20 GB под жёсткий диск
- Скачиваем CentOS-6.5-x86_64-LiveCD.iso с http://mirror.nsc.liu.se/centos-store/6.5/isos/x86_64/. Он включает мгновенный бут (загрузчик), recovery и установку
- Ставим root'у пароль vagrant (потом сменить можно)
- Добавляем стандартного пользователя vagrant:vagrant
Обновляем систему:
#dont update unless you want CentOS 6.8 upgrade
#yum update -y
#install basic tools
yum install -y htop nano
#reboot for kernel updates to take place
shutdown -r now
Систему надо настроить для вагранта, если мы хотим её автоматически выкатывать под разные проекты..
Сначала - настроить пользователя
sudo visudo -f /etc/sudoers.d/vagrant
#adding to this file:
vagrant ALL(ALL) NOPASSWD:ALL
#setup vagrant public key access
mkdir -p /home/vagrant/.ssh
chmod 0700 /home/vagrant/.ssh
wget --no-check-certificate \
https://raw.github.com/mitchellh/vagrant/master/keys/vagrant.pub \
-O /home/vagrant/.ssh/authorized_keys
chmod 0600 /home/vagrant/.ssh/authorized_keys
chown -R vagrant /home/vagrant/.ssh
nano /etc/ssh/sshd_config
#uncomment AuthorizedKeysFile %h/.ssh/authorized_keys
#enable public key authentication
service sshd restart
#start ssh on reboot
chkconfig sshd on
visudo #comment out requiretty option
Теперь для вагранта нужны Guest Additions. Это iso файл который у virtual box'а уже есть. Надо смонтировать его на диск и запустить установку пакетов
yum install -y gcc build-essential perl kernel-devel
#mount VBoxGuestAdditions.iso on CD in Virtualbox and run these:
sudo mount /dev/cdrom /mnt
cd /mnt
sudo ./VBoxLinuxAdditions.run
echo export KERN_DIR=/usr/src/kernels/`uname -r`/ >> ~/.bashrc
Теперь, у вас вероятно стоит надстройка для безопасности - SELinux. Если вы будете разрабатывать локально, то лучше его отключить
setenforce Permissive
nano /etc/sysconfig/selinux
#set to:
#SELINUX=disabled
Теперь когда всё готово, выходим из виртуалки и упаковываем её для vagrant'а. Для этого надо зайти в папку где лежит виртуалка и запустить комманду которая сгенерит package.box файлик на который в дальнейшем будет ссылаться Vagrantfile в нашем проекте:
#package box and move it to desktop
vagrant package --base CentosEmpty && mv package.box ~/Desktop/
#clean vagrant cache
vagrant global-status --prune
#cd to your project that references new box from desktop
vagrant up
См также:
http://williamwalker.me/blog/creating-a-custom-vagrant-box.html
https://www.vagrantup.com/docs/boxes/base.html
http://aruizca.com/steps-to-create-a-vagrant-base-box-with-ubuntu-14-04-desktop-gui-and-virtualbox/
https://stefanwrobel.com/how-to-make-vagrant-performance-not-suck